Dari Iterasi ke Rekursi: Rekonstruksi Pola Pikir
递归 (Recursion) 是一种从本质上改变问题解决视角的方法论。在处理列表求和等问题时,metode iteratif(Daftar Kode 4-2) bergantung pada penghitung eksplisit theSum dan kontrol status perulangan; sementara metode rekursi bergantung pada definisi matematis yang mendalam:
$$listsum(numList) = first(numList) + listsum(rest(numList))$$
Rekursi bukan hanya fungsi yang memanggil dirinya sendiri, tetapi juga memecah masalah kompleks menjadi sub-masalah berukuran lebih kecil dengan struktur yang sama, intinya terletak pada pengenalankesamaan diri. Eksekusi rekursi mencakup dua tahap simetris:
- tahap "turun": terus memotong daftar dan menekannya ke dalam tumpukan pemanggilan hingga mencapai kondisi dasar yang dapat diselesaikankondisi dasar(Base Case).
- tahap "kembali": mulai dari keadaan paling sederhana, kembali secara bertahap ke atas dan menggabungkan hasil.
Intuisi Utama
Pola pikir iteratif adalah "mengambil ember, lalu menambahkan angka satu per satu ke dalamnya"; sedangkan pola pikir rekursif adalah "jika kamu bisa memberitahu saya jumlah dari sisa angka-angka tersebut, saya hanya perlu menambahkan angka pertama saja".